package com.nova.bluetooth.helpUtils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Date;

/**
 * @Description TODO
 * @Author Administrator
 * @CreateTime 2023年11月08日 14:55:25
 */
public class TimeUtil {

    // 将时间戳转换为格式化的日期和时间字符串的静态方法
    public static String formatTimestamp(long timestamp) {
        // 将时间戳转换为Instant对象
        Instant instant = Instant.ofEpochMilli(timestamp);
        // 创建一个DateTimeFormatter对象，用于格式化日期和时间
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
                .withZone(ZoneId.systemDefault());
        // 使用formatter格式化instant
        return formatter.format(instant);
    }


    public static long calculateTimeDifferenceInSeconds(String timeString1, String timeString2) {
        // 定义时间格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

        // 将时间字符串转换为LocalDateTime对象
        LocalDateTime dateTime1 = LocalDateTime.parse(timeString1, formatter);
        LocalDateTime dateTime2 = LocalDateTime.parse(timeString2, formatter);

        // 计算时间间隔
        Duration duration = Duration.between(dateTime1, dateTime2);
        return duration.getSeconds();
    }

    public static String getModifyTimeStr(String timeStr) {
        // 定义输入和输出的日期格式
        SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat outputFormat = new SimpleDateFormat("MM-dd HH:mm");

        try {
            // 解析输入的日期字符串为Date对象
            Date date = inputFormat.parse(timeStr);
            // 格式化Date对象为指定格式的字符串
            String outputDateString = outputFormat.format(date);
            return outputDateString;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return "";
    }

    public static long convertTimeToMilliseconds(String time) {
        SimpleDateFormat dateFormat = null;
        if (time.length() == 5){
            dateFormat = new SimpleDateFormat("mm:ss");
        }else if (time.length() == 8){
            dateFormat = new SimpleDateFormat("hh:mm:ss");
        }
        if (dateFormat == null) return -1;

        dateFormat.setTimeZone(java.util.TimeZone.getTimeZone("UTC")); // 设置时区为UTC

        try {
            Date date = dateFormat.parse(time);
            return date.getTime();
        } catch (ParseException e) {
            e.printStackTrace();
            return -1;
        }
    }
}


